<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 封装一个函数，实现判断是否传参，如果没传，返回0，如果传参，求所有数字参数和
        // function isParams(){
        //     var count = 0;
        //     // 确定参数吗？ no    引出arguments
        //     // 如果传参  返回实参对象集合   【15，26，1，5.。。。】
        //     // 没有参数   返回实参对象集合   【】  
        //     // 即 没有参数  长度为0
        //     if(arguments.length === 0) return 0;
        //     // 如果没有被 条件阻断 表示有参数
        //     // 即 循环遍历 拿到每一个实参
        //     for(var i = 0; i < arguments.length ; i++){
        //         // console.log(i + "下标对应的实参项是" + arguments[i])
        //         // 判断当前项是不是数字  ？ isNaN -> 原理: 先Number转换再判断   no
        //         // 考虑 类型是number一定是数字   注意; NaN 也是数字  任何与NaN 计算相关的结果都是NaN
        //         //  需要排除 数字中的NaN  ？   
        //         if( typeof arguments[i] === "number" && arguments[i].toString() !== "NaN" ){   
        //             count += arguments[i]
        //         }
        //     }
        //     return count
        // }
        // console.log( isParams() )   // 0
        // console.log( isParams(1,2,3) ) // 6
        // console.log( isParams( "hello" , true , 2024 , 26 , false , undefined , "10" , NaN) ) // 2050



        // 封装一个函数，传入字符串，把字符串中所有的数字用中括号括起来 ;
        // 效果：console.log( fun(“ab34de5”) );“ab[3][4]de[5]”
            // function fun( str ){
            //     var newStr = "" ; // 结果新字符串
            //     // console.log(str)
            //     // 字符串的的基本操作   length 属性可以获取长度  [索引下标]可以访问字符
            //     // console.log( str , str.length , str[5] )
            //     // 循环遍历拿到每个字符
            //     for(var i = 0 ; i < str.length; i++){
            //         // console.log(i + "下标对应的字符是" + str[i])
            //         // 判断是数字  ？？？？ 
            //         // if(isNaN(str[i])){
            //         //     newStr += str[i]  // "ab[3]"
            //         // }else{
            //         //     newStr += '[' + str[i] + ']'
            //         // }

            //         // 等价于  三元？   条件 ？ 真 ： 假
            //         // isNaN(str[i]) ? newStr += str[i] : newStr += '[' + str[i] + ']'

            //         newStr += isNaN(str[i]) ? str[i] : '[' + str[i] + ']'

            //     }
            //     return newStr
            // }
            // console.log( fun( "ab34de5" ) )


            // var arr = [9,5,2,7,40,3,2];
            // // Console.log(fun(arr));找出最大值;
            // // 封装函数，找出数组中的最大值并返回     40
            // function getMaxNum( arr ){
            //     // 核心: 大于多大算大？  需要一个参数  默认可以将第一项作为 参照 为大值
            //     var max = arr[0];
            //     // 循环 拿到下标1及之后的每一项 与 初始的max 比较  替换
            //     for(var i = 1 ; i < arr.length; i++){
            //         if(arr[i] > max) {
            //             max = arr[i]
            //         }
            //     }
            //     return max
            // }
            // console.log( getMaxNum( arr ) )


            // 函数封装，打印出来100---1000之间所有的水仙花数
            //   水仙花: 三位数  对每位上的数字开立方求和 与 当前数一致   即为水仙花
            //   153   3*3*3 = 27  5*5*5 = 125  1*1*1 = 1
            //         27 + 125 + 1 = 153  
            //     153   3  153 % 10 = 3
            //              153 / 100 = 1.53  1
            //              153 / 10 = 15.3  % 10 = 5 
            
                // function getNum(){
                //     // 循环 拿到 区间 数
                //     for(var i = 100 ; i < 1000 ; i++){
                //         var g = i % 10 ;
                //         var s = parseInt(i / 10) % 10;
                //         var b = parseInt(i / 100)
                //         if(g*g*g + s*s*s + b*b*b === i){
                //             console.log(i)
                //         }
                //     }
                // }   
                // getNum()


                // 封装函数，接收参数num,当参数num小于0是，弹出提示”输出错误”否则按num指定的次数循环将“abc”拼接几次，最终将拼接好的字符串作为结果返回。
                // 例如：
                // console.log(fun(1));//”abc”
                // console.log(fun(2));//”abcabc”


                // 弹出两个输入框  
                // 第一个弹出要循环拼接的字符  不为空即可 
                //                 的次数   
                //   小于0 或不是数字 返回参数错误   
                //   1 原路返回
                //   > 1 按照指定的次数循环 拼接 返回  

                // var str = prompt("输入要拼接的字符")
                // var num = prompt("请输入大于0的数字")

                // function repeatStr( s , n ){
                //     // 判断字符没有输入  直接阻断 返回  字符无效 
                //     if(s === "") return "字符无效"
                //     // 数字 <= 0无效
                //     if(n <= 0) return "输入的次数无效，请输入大于0的正整数"
                //     // 非数字   无效
                //     if(isNaN(n)) return "请输入数字"
                //     // 全部输入 且有效 按照指定的n循环拼接返回
                //     var resStr = "" ; // 存放拼接后的结果
                //     for(var i = 0 ; i < n; i++){
                //         resStr += s
                //     }
                //     return resStr
                // }
                // console.log( repeatStr( str , num ) )

    </script>
</body>
</html>